package com.yunhe.job.task;

import com.alibaba.fastjson.JSON;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.yunhe.job.client.TaskClient;
import com.yunhe.job.constant.JobConsts;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.Map;

/**
 * 通用任务处理类
 * @author liuronglei
 */
public class TaskHandler implements SimpleJob {
    @Autowired
    private TaskClient taskClient;

    @Override
    public void execute(ShardingContext shardingContext) {
        String parameter = shardingContext.getJobParameter();
        Map<String, Object> map = (Map)JSON.parse(parameter);
//        long systemId = AuthorityConsts.FIRM_CODE.DEFAULT.value();
//        if (map.containsKey(JobConsts.JOB_KEY.SYSTEM_ID.getValue())) {
//            systemId = (int)map.get(JobConsts.JOB_KEY.SYSTEM_ID.getValue());
//            map.remove(JobConsts.JOB_KEY.SYSTEM_ID.getValue());
//        }
        String taskUrl;
        if (map.containsKey(JobConsts.JOB_KEY.TASK_URL.getValue())) {
            taskUrl = (String)map.get(JobConsts.JOB_KEY.TASK_URL.getValue());
            map.remove(JobConsts.JOB_KEY.TASK_URL.getValue());
        } else {
            return;
        }
        taskClient.runTask(taskUrl, map);
    }
}
